const { Model, DataTypes } = require("sequelize");

class CabinetsGrp extends Model {
  static init(sequelize) {
    super.init(
      {
        id: {
          type: DataTypes.INTEGER,
          primaryKey: true,
          autoIncrement: true,
          comment: "主键，自增",
        },
        name: {
          type: DataTypes.STRING(60),
          allowNull: false,
          comment: "名称，非空",
        },
        state: {
          type: DataTypes.STRING(20),
          allowNull: false,
          defaultValue: "1",
          comment: "状态（1为正常，2为维护）",
        },
        lat: {
          type: DataTypes.FLOAT,
          allowNull: false,
          comment: "纬度，非空",
        },
        lon: {
          type: DataTypes.FLOAT,
          allowNull: false,
          comment: "经度，非空",
        },
        createdAt: {
          type: DataTypes.DATE,
          allowNull: false,
          comment: "创建时间",
        },
        updatedAt: {
          type: DataTypes.DATE,
          allowNull: false,
          comment: "更新时间",
        },
      },
      {
        sequelize,
        modelName: "CabinetsGrp",
        tableName: "cabinet_grp",
        timestamps: false, // 禁止自动管理 createdAt 和 updatedAt
        comment: "柜子分组表",
      }
    );
  }

  // 定义关联关系（可选，根据业务需求）
  static associate(models) {
    // 假设 CabinetsGrp 与 Cabinet 有 1 对多的关系（一个柜子分组包含多个快递柜）
    this.hasMany(models.Cabinet, {
      foreignKey: "belongid", // 外键字段（参考 Cabinet 模型的 belongid）
      as: "cabinets", // 关联别名
    });
  }
}

module.exports = CabinetsGrp;
